\begin{flushleft}
 Nous allons ici mettre en place une démarche nous permettant de rechercher, ordonner, caractériser et hiérarchiser les fonctions du produit. Pour cela nous allons commencer par clarifier le besoin justifiant l'existence du projet grâce au diagramme suivant que l'on appelle de la bête à corne :\\
\medskip
\begin{center}
\includegraphics[height=100mm]{diag_bete_a_corne.png}
\end{center}
\medskip
Pour avoir une vue d'ensemble plus précise des différentes fonctions, on utilise un graphe des interactions :
\begin{center}
\includegraphics[height=100mm]{diag_pieuvre.png}
\end{center}
\medskip
\begin{flushright}
FP : Fonction Principale FC : Fonction Contrainte
\end{flushright}
\medskip
\begin{itemize}
	\item FP : rendre l'application opérationnelle que ce soit pour l'utilisateur ou pour l'administrateur.
	\medskip
	\item FC1 : créer un aperçu en image des différents exercices lors de la création d'une fiche.
	\medskip
	\item FC2 : pouvoir rajouter des étiquettes aux différentes catégories d'exercices.
	\medskip
	\item FC3 : permettre une gestion des mots-clés lors de la création d'un exercice.
	\medskip
	\item FC4 : insérer un niveau de difficulté lorsque l'on crée un exercice et pouvoir trier les exercices par difficulté.
	\medskip
	\item FC5 : empêcher les doublons d'exercices dans la base de données.
	\medskip
	\item FC6 : rendre l'application modulable.
	\medskip
	\item FC7 : optimiser et sécuriser l'application.
	\medskip
	\item FC8 : permettre une sauvegarde de la base de données.
	\medskip	
\end{itemize}
\medskip
On constate donc que les éléments extérieurs à considérer sont nombreux et certaines contraintes viennent ajouter de la complexité au projet déjà énonçé. Ainsi on peut voir des contraintes se développer à différents niveaux :
\medskip
\begin{itemize}
	\item Fonctionnel : les différentes fonctions de l'application doivent être claires et facile à utiliser ce qui nécessite un travail important au niveau de l'interface graphique pour que n'importe quel utilisateur comme les non informaticiens puissent s'y retrouver aisément.
	\medskip
	\item Technique : le code est réalisé dans un modèle de développement précis, il faut donc que toute l'application suive ce modèle et par conséquent que toutes les fonctions puissent être retrouvé avec facilité dans ce mode de développement, une fonction correspondant à une vue de l'application.
	\medskip
	\item Organisationnel : certaines tâches demandent plus de temps que les autres et le chef de projet doit gérer son équipe en conséquence , le temps imparti peut de plus changer sur certaines tâches dont on pense qu'il faudrait moins de temps. Ces changements sont à prendre en compte également.
	\medskip
	\item Performance : l'application doit bien évidemment être la plus rapide possible. En effet, le temps pour une opération d'un utilisateur voulant faire n'importe quelle opération doit être quasiment instantanné ce qui demande un code extrémement clair et qui soit le plus succint possible et le moins demandant possible en terme de ressource consommée.
	\medskip
	\item  Logistique : l'application doit pouvoir tourner d'abord sur le système de l'iut mais il pourrait être envisagé dans l'avenir de l'étendre , ce qui doit être pris en compte lors de la réalisation.
	\medskip
	\item  Sécurité : seuls les utilisateurs autorisés doivent pouvoir réaliser certaines opérations. De plus aucun élément extérieur au système ne doit pouvoir y entrer sans autorisation. La sécurité de l'application doit donc gérer le maximum d'éventualitées liées à ce cas.
	\medskip
	
\end{itemize}
\medskip
\end{flushleft}
